package com.foreknow.demo12;

public class EmployeeManager {

    private Employee[] employees; //定义数组容器用来保存员工对象
    private int count;
    public EmployeeManager() {
        employees = new Employee[3];
    }

    /**
     * 1. 添加员工 insert into employee values(?,?,?,?,?,?);
     * @param employee
     */
    public void addEmployee(Employee employee) {
        if(employees!=null) {
            if(count < 3) {
                employees[count] = employee; //将员工对象保存到数组中
                count++;
                System.out.println("添加成功");
            }else {
                System.out.println("添加失败");
            }
        }
    }
    public static void main(String[] args) {
        EmployeeManager manager = new EmployeeManager();
        Employee e1 = new Employee(); //创建员工对象
        e1.setEid(100); //给属性设置值
        e1.setName("fender");
        Employee e2 = new Employee(); //创建员工对象
        e2.setEid(101); //给属性设置值
        e2.setName("gibson");
        manager.addEmployee(e1); //调用添加员工的方法
        manager.addEmployee(e2); //调用添加员工的方法
    }


    /**
     * 3. 查询所有员工的信息
     * @return
     */
    public Employee[] getQueryAll() {
        //创建一个新的数组容器
        Employee[] e = new Employee[3];
        for(int i = 0;i<employees.length;i++) {
             if(employees[i]!=null) {
                 //获取到数组中的元素
                 employees[i] = e[i];
             }
        }
        return e;
    }

    /**
     * 2. 根据员工的编号查询某个员工
     * 思路：
     *  1. 遍历数组
     *  2. 每遍历一次就要从数组中获取到某个元素(Employee对象),通过get方法获取到员工的eid,这后用这个员工的eid与用户输入的eid比较
     *     如果相等就找到这个员工对象并输出这个员工的信息
     * @param eid
     * @return
     */
    public Employee getQueryById(int eid) {
        //        for遍历数组 {
        //            判断数组中的某个元素的eid是否与用户输入的eid相等
        //        }
        Employee emp = null;
        for(int i = 0;i<employees.length;i++) {
            if (employees[i] != null) {
                if(employees[i].getEid() == eid) {  //employees[i].getEid()表示获取某个员工的编号
                    emp = employees[i];
                }
            }
        }
        return emp;
    }

    /**
     * 根据员工的编号修改某个员工
     * 1. 根据id查询到要修改的员工
     * 2. 修改员工信息
     * @param employee
     * @return
     */
    public Employee updateEmployee(Employee employee) {
        employee.setName("xxx");
        employee.setAge(60);
        return employee;
    }


}
